package com.example.basic.web.service.device;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.basic.web.model.device.Device;

import java.util.List;
import java.util.Map;


/**
 * <p>
 *  服务类
 * </p>
 *
 * @author suntt
 * @since 2019-10-29
 */
public interface DeviceService {

    /**
     * 保存或者修改  zzl
     * @param device 模型
     * @return
     */
    Device addOrUpdate(Device device);

    /**
     * 详情  zzl
     * @param devicePoint 应用终端编码
     * @return
     */
    Device detail(String devicePoint);

    /**
     * 删除  zzl
     * @param devicePoint 应用终端编码
     * @return
     */
    int delete(String devicePoint);

    /**
     * 启用/禁用  zzl
     * @param deviceCode 应用终端编码
     * @return
     */
    int enableOrDisable(String deviceCode);

    /**
     * 应用终端列表
     * @param queryPage 分页
     * @param deviceType 设备类型 0-全部
     * @param isAll 是否查询全部 0-否，1-是
     * @param status 状态 0-全部
     * @return
     */
    IPage<Device> queryList(Page<Device> queryPage, String deviceType, String isAll,String status);

    /**
     * 空闲/占用  zzl
     * @param deviceCode 应用终端编码
     * @return
     */
    int freeOrUse(String deviceCode);

    /**
     * 首页设备情况
     * @return
     */
    List<Map> homeDeviceReport();

    /**
     * 查询未使用的接驳台
     * @param deviceAddress
     * @return
     */
    Device findUnUseDockStation(String deviceAddress,String deviceType);

    /**
     * 根据设备点位获取设备信息
     * @param devicePoint
     * @return
     */
    Device findByPoint(String devicePoint);

    /**
     * 根据设备名称获取设备信息
     * @param deviceName
     * @return
     */
    Device findByDeviceName(String deviceName);

    /**
     * 获取工作中的接驳台
     * @param deviceAddress
     * @return
     */
    Device findWorkDevice(String deviceAddress);

    List<Device> queryListByType(String deviceType);
}